// 购物车 store
import {getCartList,removeGoods} from '@/api/cart';

export default{
    namespaced:true,

    state:{
        list:[],
    },

    actions:{
        //获取购物车列表
        getCartDataList(context){
            getCartList().then(data=>{
                context.commit('GETCARTDATALIST',data.data.result)
            })
        },
        //移除购物车商品 或移除失效商品
        removeCartGoods(context,skuId){
            let ids;
            if(skuId){
                ids = [];
                ids.push(skuId);
            }else{
                ids = context.getters.allSelected.map(item=>item.skuId);
            }

            removeGoods(ids).then(()=>{
                context.dispatch('getCartDataList');
            })
        }
    },

    mutations:{
        GETCARTDATALIST(state,data){
            state.list = data;
        }
    },

    // 内部参数，相当于设定了一个属性
    getters:{
        allGoodsNum(state){
            let num = 0;
            state.list.forEach(e => {
                num += e.count;
            });
            return num;
        },
        // 购物车内已选商品数
		allSelectedNum(state) {
			let num = 0;
			state.list.forEach(e => {
				if (e.selected) num += e.count+e.postFee;
			});
			return num;
		},
        // 购物车内已选商品 返回一个数组
		allSelected(state) {
			return state.list.filter(item => item.selected);
		},

        //购物车中选中的商品总价
        allSelectedTotalPrice(state){
            let num = 0;
            state.list.forEach(e=>{
                if(e.selected) num+=e.price*e.count
            })
            return num;
        }
    }
}